White-box Fuzzing RPC-based APIs with EvoMaster: An Industrial Case Study
نویسندگان
چکیده
Remote Procedure Call (RPC) is a communication protocol to support client-server interactions among services over network. RPC widely applied in industry for building large-scale distributed systems, such as Microservices. Modern frameworks include example Thrift, gRPC, SOFARPC and Dubbo. Testing systems using communications very challenging, due the complexity of various system could employ. To best our knowledge, there does not exist any tool or solution that enable automated testing modern RPC-based services. fill this gap, paper we propose first approach literature, together with an open-source tool, fuzzing APIs. The context white-box search-based techniques. tackle schema extraction frameworks, formulate specification along parser allows from source code JVM Then, extracted employ search produce tests by maximizing heuristics newly defined specific domain. We built extension fuzzer (i.e., EvoMaster ), has been integrated into real industrial pipeline be development process assess novel approach, conducted empirical study two artificial four web selected partner. In addition, further demonstrate its effectiveness application settings, report results employing another 50 APIs autonomously partner their processes. Results show capable enabling test case generation 54 industrial). also compared simple grey-box technique existing manually written tests. Our achieves significant improvements on coverage. Regarding fault detection, conducting careful review generated APIs, total 41 faults were identified, which have now fixed. Another 8,377 detected are currently under investigation.
منابع مشابه
Well-typed generic smart-fuzzing for APIs
Despite recent advances in program certification, testing remains a widely-used component of the software development cycle. Various flavours of testing exist: popular ones include unit testing, which consists in manually crafting test cases for specific parts of the code base, as well as QuickCheck-style testing, where instances of a type are automatically generated to serve as test inputs. Th...
متن کاملThe future of grey-box fuzzing
Society are becoming more dependent on software, and more artifacts are being connected to the Internet each day[31]. This makes the work of tracking down vulnerabilities in software a moral obligation for software developers. Since manual testing is expensive[7], automated bug finding techniques are attractive within the quality assurance field, since it can save companies a lot of money. This...
متن کاملAssessing Model-Based Testing: Results from an Industrial Case Study
Companies continuously look for ways to improve their processes and cut costs using new technologies. Model-based testing (MBT) is a technology that has the potential to be such a cost saver. In this paper, we present a case study in which we compare manual testing processes with MBT processes based on finite state machine (FSM) models. The system under test (SUT) is a professionally developed ...
متن کاملThe RPC-Memory Case Study: A Synopsis
The RPC Memory speci cation problem was proposed by Broy and Lamport as a case study in the formal design of distributed and concurrent systems The idea was to use it as a basis for comparing various approaches to formal speci ca tion re nement and veri cation Various preliminary solutions were presented and discussed during a workshop at Schloss Dagstuhl Germany in September Authors were then ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: ACM Transactions on Software Engineering and Methodology
سال: 2023
ISSN: ['1049-331X', '1557-7392']
DOI: https://doi.org/10.1145/3585009